#Dataset original jugadores de fifa21
origi_data21 <- read_csv("players_21.csv", col_names = TRUE)
#Dataset original jugadores de fifa22
origi_data22<-read_csv("players_22.csv", col_names = TRUE)names(origi_data21)#Columnas del set de datos
#Visión general del set de datos
str(origi_data21)
glimpse(origi_data21)fdata_21<-origi_data21[,c("short_name","player_positions","overall","potential","value_eur","age", "club_name", "league_name", "nationality_name", "preferred_foot", "pace", "shooting", "passing", "dribbling", "defending", "physic")]
fdata_22<-origi_data22[,c("short_name","player_positions","overall","potential","value_eur","age", "club_name", "league_name", "nationality_name", "preferred_foot", "pace", "shooting", "passing", "dribbling", "defending", "physic")]¿Cuál es la mayor conformación de jugadores “Elite” en las 5 grandes ligas?
#Ciclo for que clasifica cada jugador en categorias
fdata_21$clasificacion <- NA
for (i in 1:nrow(fdata_21)) {
if (fdata_21$overall[i] >= 80) {
fdata_21$clasificacion[i] <- "Elite"
} else if (fdata_21$overall[i] >= 60) {
fdata_21$clasificacion[i] <- "Bueno"
} else {
fdata_21$clasificacion[i] <- "Promedio"
}
}
#Datos de las 5 grandes ligas
five_league21<-fdata_21 %>%
filter(league_name %in% c("Spain Primera Division","English Premier League", "Italian Serie A","German 1. Bundesliga",
"French Ligue 1") & clasificacion == "Elite" )
#Grafico de barras
ggplot(five_league21, aes(x = league_name)) +
geom_bar(fill = "#1f77b4", color = "black") +
labs(title = "Distribución de jugadores Elite por liga año 2021", x = "Ligas", y = "Número de Jugadores")+
scale_x_discrete(labels = c("Spain Primera Division" = "La Liga (España)",
"English Premier League" = "Premier League (Inglaterra)",
"Italian Serie A" = "Serie A (Italia)",
"German 1. Bundesliga" = "Bundesliga (Alemania)",
"French Ligue 1" = "Ligue 1 (Francia)"))+
theme(panel.background = element_rect(fill = "#C1CDC1"))fdata_22$clasificacion <- NA
for (i in 1:nrow(fdata_22)) {
if (fdata_22$overall[i] >= 80) {
fdata_22$clasificacion[i] <- "Elite"
} else if (fdata_22$overall[i] >= 60) {
fdata_22$clasificacion[i] <- "Bueno"
} else {
fdata_22$clasificacion[i] <- "Promedio"
}
}
five_league22<-fdata_22 %>%
filter(league_name %in% c("Spain Primera Division","English Premier League", "Italian Serie A","German 1. Bundesliga",
"French Ligue 1") & clasificacion == "Elite" )
ggplot(five_league22, aes(x = league_name)) +
geom_bar(fill = "#ff7f0e", color = "black") +
labs(title = "Distribución de jugadores Elite por liga año 2022", x = "Ligas", y = "Número de Jugadores")+
scale_x_discrete(labels = c("Spain Primera Division" = "La Liga (España)",
"English Premier League" = "Premier League (Inglaterra)",
"Italian Serie A" = "Serie A (Italia)",
"German 1. Bundesliga" = "Bundesliga (Alemania)",
"French Ligue 1" = "Ligue 1 (Francia)"))+
theme(panel.background = element_rect(fill = "#C1CDC1"))five_league21$year <- 2021
five_league22$year <-2022
union_data <- rbind(five_league21, five_league22)
ggplot(union_data, aes(x = league_name, fill = as.factor(year), y = ..count..)) + geom_bar(position = "dodge") + labs(title = "Comparativa de Jugadores Elite por Liga (2021 vs 2022)", x = "Ligas", y = "Número de Jugadores") + scale_x_discrete(labels = c("Spain Primera Division" = "La Liga(España)", "English Premier League" = "Premier League(Inglaterra)", "Italian Serie A" = "Serie A(Italia)", "German 1. Bundesliga" = "Bundesliga(Alemania)", "French Ligue 1" = "Ligue 1(Francia)")) + scale_fill_discrete(name = "Año") +
scale_fill_manual(values = c("2021" = "#1f77b4", "2022" = "#ff7f0e"), name = "Año")+
theme(panel.background = element_rect(fill = "#C1CDC1")) #Creacion de dataframe con las habilidades de los jugadores
data21_habil <- fdata_21 %>%
select(short_name,potential, everything()[11:16])
#Limpieza de los datos(Eliminancion de NA no se uso por no tener informacion sobre sus estadisticas)
fdata21_habilidades<- data21_habil %>%
drop_na()
#Dataframe para la prediccion de los jugadores
fdata21_habild_predic<- fdata21_habilidades %>%
select(short_name, everything()[3:8])
#Ciclo con codiciones en el que se evalua el potencial del jugador
for (i in 1:nrow(fdata21_habilidades)) {
if (fdata21_habilidades$potential[i] >= 90) {
fdata21_habild_predic[i, 2:7] <- fdata21_habild_predic[i, 2:7] + 1 }
else if (fdata21_habilidades$potential[i] >= 70) {
fdata21_habild_predic[i, 2:7] <- fdata21_habild_predic[i, 2:7] + 2 }
else if (fdata21_habilidades$potential[i] >= 60) {
fdata21_habild_predic[i, 2:7] <- fdata21_habild_predic[i, 2:7] - 1 }
else { fdata21_habild_predic[i, 2:7] <- fdata21_habild_predic[i, 2:7] + 0 }
}
#Pesos(Valor porcentual importancia conforme a la calificacion)
pesos <- c(pace = 0.2, shooting = 0.2, passing = 0.2, dribbling = 0.2, defending = 0.1, physic = 0.1)
# Usar sapply para calcular el overall_habilidades de la tabla de habilidades"fdata21_habilidades"
fdata21_habilidades$overall_habilidad <- sapply(1:nrow(fdata21_habilidades), function(i) {
sum(fdata21_habilidades[i,3:8 ] * pesos)
})
# Usar sapply para calcular el overall_habilidades de la tabla de prediccion "fdata21_habild_predic"
fdata21_habild_predic$overall_habilidades <- sapply(1:nrow(fdata21_habild_predic), function(i) {
sum(fdata21_habild_predic[i,2:7 ] * pesos)
})
print(head(fdata21_habilidades))## # A tibble: 6 × 9
## short_name potential pace shooting passing dribbling defending physic
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 L. Messi 93 85 92 91 95 38 65
## 2 Cristiano Ronaldo 92 89 93 81 89 35 77
## 3 R. Lewandowski 91 78 91 78 85 43 82
## 4 Neymar Jr 91 91 85 86 94 36 59
## 5 K. De Bruyne 91 76 86 93 88 64 78
## 6 V. van Dijk 91 76 60 71 71 91 86
## # ℹ 1 more variable: overall_habilidad <dbl>
## # A tibble: 6 × 8
## short_name pace shooting passing dribbling defending physic
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 L. Messi 86 93 92 96 39 66
## 2 Cristiano Ronaldo 90 94 82 90 36 78
## 3 R. Lewandowski 79 92 79 86 44 83
## 4 Neymar Jr 92 86 87 95 37 60
## 5 K. De Bruyne 77 87 94 89 65 79
## 6 V. van Dijk 77 61 72 72 92 87
## # ℹ 1 more variable: overall_habilidades <dbl>
graf_predic <- fdata21_habild_predic %>%
slice(1) %>%
select(pace, shooting, passing, dribbling, defending, physic)
graf_22<-fdata_22 %>%
slice(1) %>%
select(pace,shooting,passing,dribbling,defending,physic)
combined_habilidades <- rbind(graf_predic, graf_22)
max_min <- rbind(rep(100, 7), rep(0, 7), combined_habilidades)
colnames(max_min) <- c("pace", "shooting", "passing", "dribbling", "defending", "physic", "potential")
radarchart(
max_min[c(1, 2, 3, 4),],
axistype = 1,
pcol = c(rgb(0.2, 0.5, 0.5, 0.9), rgb(0.8, 0.2, 0.2, 0.9)),
pfcol = c(rgb(0.2, 0.5, 0.5, 0.5), rgb(0.8, 0.2, 0.2, 0.5)),
plwd = 4, cglcol = "grey",
cglty = 1, axislabcol = "grey",
caxislabels = seq(0, 100, 20),
cglwd = 0.8, vlcex = 0.8,
title = "Comparativa de habilidades de L.Messi en 2021 y 2022"
)